home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 40
/
Aminet 40 (2000)(Schatztruhe)[!][Dec 2000].iso
/
Aminet
/
misc
/
emu
/
ATUtilities.lha
/
ATUtilities
/
BASIC
/
ADIR.BAS
< prev
next >
Wrap
BASIC Source File
|
2000-09-26
|
4KB
|
181 lines
$INCLUDE "REGNAMES.INC"
COLOR 14
IF CheckVector(&H49)=0 THEN
SOUND 2000,2
PRINT "FEHLER: ATUtilities File Transfer ist nicht installiert!"
GOTO ende
END IF
GOSUB CmdAuswertung
REG %AX,(&H6*256)
CALL INTERRUPT &H49
segment=REG(%ES)
offset=REG(%DI)
DEF SEG = segment
a$=a$+CHR$(0)
FOR i=1 TO LEN(a$)
POKE offset+i-1,ASC(MID$(a$,i,1))
NEXT
REG %AX,(12*256)
CALL INTERRUPT &H49
IF REG(%BX)=10000 THEN
fl=REG(%CX)
REG %BX,fl
REG %AX,(14*256)
CALL INTERRUPT &H49
COLOR 11
PRINT "Verzeichnis: ";
i=0 : ok=0
WHILE ok=0
x$=CHR$(PEEK(offset+i))
IF x$<>CHR$(0) THEN PRINT x$; ELSE ok=1
i=i+1
WEND
PRINT ""
REG %BX,fl
REG %AX,(13*256)
CALL INTERRUPT &H49
ELSE
SOUND 2000,2
PRINT "Verzeichnis ";a$;"ist nicht vorhanden/Zugriff verweigert."
GOTO ende
END IF
FOR i=1 TO LEN(a$)
POKE offset+i-1,ASC(MID$(a$,i,1))
NEXT
REG %AX,(11*256)
CALL INTERRUPT &H49
IF REG(%BX)=10000 THEN
DEF SEG = segment
anz=REG(%CX)
PRINT "Erstellt am: ";
day=PEEK(offset+40)
month=PEEK(offset+41)
year=PEEKI(offset+42)
PRINT Format$(day," ");" .";Format$(month," ");".";year;
PRINT ""
PRINT "Eintrge: ";anz
PRINT ""
zeile=5
COLOR 14
ofs=offset+44
p&=0 : dateien=0
FOR i=1 TO anz
typ=PEEK(ofs+36)
IF typ=1 THEN COLOR 9 ELSE COLOR 14
FOR j=0 TO 29
PRINT CHR$(PEEK(ofs+j));
NEXT
IF typ=1 THEN
LOCATE ,31
PRINT "Verzeichnis";
ELSE
s&=PEEKL(ofs+30)
x$=STR$(s&)
LOCATE ,40-LEN(x$)
PRINT x$;
p&=p&+s&
dateien=dateien+1
END IF
LOCATE ,44
pro=PEEKI(ofs+34)
IF (pro AND 1) THEN d$="-" ELSE d$="D"
IF (pro AND 2) THEN e$="-" ELSE e$="E"
IF (pro AND 4) THEN w$="-" ELSE w$="W"
IF (pro AND 8) THEN r$="-" ELSE r$="R"
IF (pro AND 16) THEN a$="A" ELSE a$="-"
IF (pro AND 32) THEN p$="P" ELSE p$="-"
IF (pro AND 64) THEN s$="S" ELSE s$="-"
IF (pro AND 128) THEN h$="H" ELSE h$="-"
PRINT h$;s$;p$;a$;r$;w$;e$;d$;
LOCATE ,54
hour=PEEK(ofs+37)
minute=PEEK(ofs+38)
second=PEEK(ofs+39)
PRINT Format$(hour," ");":";Format$(minute,"0");":";Format$(second,"0");" ";
day=PEEK(ofs+40)
month=PEEK(ofs+41)
year=PEEKI(ofs+42)
LOCATE ,66
PRINT Format$(day," ");" .";Format$(month," ");".";year;
PRINT ""
zeile=zeile+1
ofs=ofs+44
IF zeile=23 THEN
COLOR 11
PRINT "-- Weiter mit beliebiger Taste oder Ende mit ESC ----------------------------"
i$=INKEY$
WHILE i$="" : i$=INKEY$ : WEND
COLOR 14
IF i$=CHR$(27) THEN GOTO ende
zeile=1
END IF
NEXT
PRINT ""
IF p&>(100*1024) THEN
e$=" KBytes"
p&=p&/1024
IF p&>(10*1024) THEN
e$=" MBytes" : p&=p&/1024
END IF
ELSE
e$=" Bytes"
END IF
s$=STR$(p&)+e$
COLOR 14
PRINT "Das Verzeichnis besitzt";s$;" in";dateien;"Dateien."
ELSE
SOUND 2000,2
PRINT "Zugriff auf Amiga-Verzeichnis ";a$;"verweigert."
END IF
ende:
COLOR 7
END
CmdAuswertung:
cmd$=COMMAND$
a$=cmd$
IF a$="/?" OR a$="?" THEN
GOTO argf
END IF
IF a$="" THEN a$=STRING$(20,CHR$(0))
RETURN
argf:
SOUND 2000,2
PRINT "ADir - Version 1.0 Copyright (C) 1993 by Thomas Dreibholz"
PRINT ""
PRINT "ADir listet ein beliebiges Amiga-Verzeichnis auf (Dir-Befehl). Wird kein"
PRINT "Verzeichnisname angegeben, so wird das aktuelle Verzeichnis angezeigt."
PRINT "Dieses kann mit ACD gewechselt werden."
PRINT ""
PRINT "Aufruf: ADir {Amiga-Verzeichnis | ? | /?}"
PRINT ""
GOTO ende
FUNCTION CheckVector(num) STATIC
REG %AX,(&H35*256)+num
CALL INTERRUPT &H21
segm=REG(%ES)
offs=REG(%BX)
DEF SEG = segm
IF (segm=0) OR (PEEK(offs)=207) THEN
CheckVector=0
ELSE
CheckVector=1
END IF
END FUNCTION
FUNCTION Format$(num,c$) STATIC
n$=STR$(num)
n$=MID$(n$,2,LEN(n$)-1)
IF LEN(n$)=1 THEN n$=c$+n$
Format$=n$
END FUNCTION